package example.array;

import java.util.Collections;
import java.util.HashSet;
import java.util.Set;

/**
 * Created by lenovo on 2016/11/4 0004.
 * 数组的并集
 */
public class Union {
    public static void main(String[] args) throws Exception {
        String[] arr1 = {"1", "2", "3"};
        String[] arr2 = {"4", "5", "6"};
        //调用自定义求并集的方法
        String[] result_union = union(arr1, arr2);
        System.out.println("并集的结果如下：");

        for (String str : result_union) {
            System.out.println(str);
        }
    }


    /**
     * 求两个字符串数组的并集，利用set的元素唯一性
     *
     * @param arr1 数组1
     * @param arr2 数组2
     * @return 返回两数组共有的元素组成的数组
     */
    private static String[] union(String[] arr1, String[] arr2) {
        Set<String> set = new HashSet<String>();
        //集合的方法，添加数组到set集合中
        Collections.addAll(set, arr1);
        //古老而原始的方法
        for (String str : arr2) {
            set.add(str);
        }

        String[] result = {};

        return set.toArray(result);
    }
}
